# # # 编译器
# # CC = g++
# # # 编译选项
# # CFLAGS = -std=c++17 -Wall
# # # 链接选项
# # LDFLAGS = -lncurses

# # # 包含目录
# # INCLUDE_DIRS = include

# # # 源代码文件夹
# # SRC_DIR = src

# # # 输出文件夹
# # OUTPUT_DIR = bin

# # # 从源文件夹中查找所有的 C++ 源文件
# # SOURCES = $(wildcard $(SRC_DIR)/*.cpp)

# # # 生成目标文件名列表
# # OBJECTS = $(patsubst $(SRC_DIR)/%.cpp,$(OUTPUT_DIR)/%.o,$(SOURCES))

# # # 最终的可执行文件名
# # TARGET = vjm

# # # 默认目标
# # all: $(OUTPUT_DIR) $(TARGET)

# # # 生成输出文件夹
# # $(OUTPUT_DIR):
# # 	mkdir -p $(OUTPUT_DIR)

# # # 生成可执行文件
# # $(TARGET): $(OBJECTS)
# # 	$(CC) $(CFLAGS) -o $(TARGET) $(OBJECTS) $(LDFLAGS)

# # # 生成目标文件
# # $(OUTPUT_DIR)/%.o: $(SRC_DIR)/%.cpp
# # 	$(CC) $(CFLAGS) -I $(INCLUDE_DIRS) -c $< -o $@

# # # 清理生成的文件
# # clean:
# # 	rm -rf $(OUTPUT_DIR) $(TARGET)
# # 编译器
# CC = g++
# # 编译选项
# CFLAGS = -std=c++17 -Wall
# # 链接选项
# LDFLAGS = -lncurses

# # 包含目录
# INCLUDE_DIRS = include

# # 源代码文件夹
# SRC_DIR = src

# # 输出文件夹
# OUTPUT_DIR = bin

# # 从源文件夹中查找所有的 C++ 源文件
# SOURCES = $(wildcard $(SRC_DIR)/*.cpp)

# # 生成目标文件名列表
# OBJECTS = $(patsubst $(SRC_DIR)/%.cpp,$(OUTPUT_DIR)/%.o,$(SOURCES))

# # 最终的可执行文件名
# TARGET = edit

# # 默认目标
# all: $(OUTPUT_DIR) $(TARGET)

# # 生成输出文件夹
# $(OUTPUT_DIR):
# 	mkdir -p $(OUTPUT_DIR)

# # 生成可执行文件
# $(TARGET): $(OBJECTS)
# 	$(CC) $(CFLAGS) -o $(TARGET) $(OBJECTS) $(LDFLAGS)

# # 生成目标文件
# $(OUTPUT_DIR)/%.o: $(SRC_DIR)/%.cpp
# 	$(CC) $(CFLAGS) -I $(INCLUDE_DIRS) -c $< -o $@

# # 清理生成的文件
# clean:
# 	rm -rf $(OUTPUT_DIR) $(TARGET)
# 编译器
CC = g++
# 编译选项
CFLAGS = -std=c++17 -Wall
# 链接选项
LDFLAGS = -lncurses

# 包含目录
INCLUDE_DIRS = include

# 源代码文件夹
SRC_DIR = src

# 输出文件夹
OUTPUT_DIR = bin

# 从源文件夹中查找所有的 C++ 源文件
SOURCES = $(wildcard $(SRC_DIR)/*.cpp)

# 生成目标文件名列表
OBJECTS = $(patsubst $(SRC_DIR)/%.cpp,$(OUTPUT_DIR)/%.o,$(SOURCES))

# 最终的可执行文件名
TARGET = edit

# 默认目标
all: $(TARGET)

# 生成可执行文件
$(TARGET): $(SOURCES)
	$(CC) $(CFLAGS) -I $(INCLUDE_DIRS) -o $(TARGET) $(SOURCES) $(LDFLAGS)

# 清理生成的文件
clean:
	rm -f $(TARGET)